package com.caigou.desensitization.enums;

/**
 脱敏类型
 */
public enum SensitiveTypeEnums {
	/**
	 默认方式脱敏
	 */
	DEFAULT(0, 6),
	/**
	 中文名称
	 */
	CHINESE_NAME(1, 1),
	/**
	 手机号
	 */
	MOBILE(3, 4),
	/**
	 座机号码
	 */
	FIXED_PHONE(0, 4),
	/**
	 银行卡
	 */
	BANK_CARD(6, 4),
	/**
	 身份证号
	 */
	ID_CARD(0, 4),
	/**
	 邮箱
	 */
	EMAIL(2, 0),
	/**
	 地址
	 */
	ADDRESS(6, 4),
	;
	/**
	 开始长度
	 */
	private int begin;
	;
	/**
	 结束长度
	 */
	private int end;

	SensitiveTypeEnums(int begin, int end) {
		this.begin = begin;
		this.end   = end;
	}

	/**
	 通过 name 字符串获取枚举，容错处理（可选）
	 */
	public static SensitiveTypeEnums fromName(String name) {
		try {
			return SensitiveTypeEnums.valueOf(name.toUpperCase());
		} catch (IllegalArgumentException e) {
			throw new RuntimeException("未知的SensitiveTypeEnums名称: " + name, e);
		}
	}

	public int getBegin() {
		return begin;
	}

	public int getEnd() {
		return end;
	}
}
